package com.andkrup.easygame.game.objects {

	/**
	 * @author Andkrup
	 */
	public interface IWorldObject {
		/**
		 * If present, determines what kind of equipment is needed in order to
		 * operate this WorldObject instance. For instance, a Car needs a car-
		 * key to operate.
		 */
		function get equipmentChallenge():IEquipmentChallenge;
		function set equipmentChallenge(value:IEquipmentChallenge):void;
		/**
		 * If present, determines how skilled the character must be in the sel-
		 * ected skill in order to accomplish what is wanted with this World-
		 * Object instance. For instance, it may require a high skill level of a
		 * character to succeed in a Car-chase, even though it only takes a
		 * minimum of skill to get a car to move from A to B.
		 */
		function get skillLevel():uint;
		function set skillLevel(value:uint):void;
		function operate(requiredEquipment:IEquipment = null, requiredSkill:ISkill = null):Boolean;
	}
}
